package com.heima.controller.order_service;


import com.heima.service.ReportService;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.math.BigDecimal;
import java.sql.Date;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

@RestController
@Slf4j
@RequestMapping("/api/order-service/report")
public class ReportController {

    @Autowired
    private ReportService reportService;

    /**
     * 查询当月订单总数
     * @param start
     * @param end
     * @return
     */
    @GetMapping("/orderCount")
    public Integer orederCount(@RequestParam("start") String start,
                               @RequestParam("end") String end){
        // start 参数值为 "2025-08-01+00:00:00"，可按需处理格式（如替换 + 为空格）
        String formattedStart = start.replace("+", " ");
        String formattedEnd = end.replace("+", " ");
        // 2. 定义时间格式器，与字符串格式匹配（年-月-日 时:分:秒）
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        // 3. 转换为 LocalDateTime 类型
        LocalDateTime startTime = LocalDateTime.parse(formattedStart, formatter);
        LocalDateTime endTime = LocalDateTime.parse(formattedEnd, formatter);
        log.info("查询订单总数参数 开始时间{} 结束时间{}",start,end);

        Integer count = reportService.orederCount(startTime,endTime);
        return count;
    }

    @GetMapping("/orderAmount")
    public BigDecimal orederAmount(@RequestParam("start") String start,
                               @RequestParam("end") String end){
        // start 参数值为 "2025-08-01+00:00:00"，可按需处理格式（如替换 + 为空格）
        String formattedStart = start.replace("+", " ");
        String formattedEnd = end.replace("+", " ");
        // 2. 定义时间格式器，与字符串格式匹配（年-月-日 时:分:秒）
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        // 3. 转换为 LocalDateTime 类型
        LocalDateTime startTime = LocalDateTime.parse(formattedStart, formatter);
        LocalDateTime endTime = LocalDateTime.parse(formattedEnd, formatter);
        log.info("查询订单总数参数 开始时间{} 结束时间{}",start,end);

        BigDecimal Amount = reportService.orederAmount(startTime,endTime);
        return Amount;
    }


}
